#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
MCP 高级计算器服务 v2.0 使用示例

本文件展示了计算器服务的各种功能和使用方法
"""

import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from main import (
    add, subtract, multiply, divide, calculate,
    power, square_root, factorial, logarithm, trigonometry,
    statistics_analysis, unit_conversion,
    get_performance_stats, reset_performance_stats
)

def basic_operations_examples():
    """基础运算示例"""
    print("=== 📊 基础运算示例 ===")
    print(f"整数加法: {add(100, 50)}")
    print(f"小数减法: {subtract(10.5, 3.2)}")
    print(f"大数乘法: {multiply(123456, 789)}")
    print(f"精确除法: {divide(22, 7)}")
    print(f"高精度计算: {add(0.1, 0.2)}")
    print()

def advanced_math_examples():
    """高级数学示例"""
    print("=== 🔬 高级数学示例 ===")
    print(f"大数幂运算: {power(2, 20)}")
    print(f"平方根: {square_root(2)}")
    print(f"大数阶乘: {factorial(10)}")
    print(f"自然对数: {logarithm(math.e)}")
    print(f"常用对数: {logarithm(1000, 10)}")
    print(f"正弦函数: {trigonometry('sin', 45, 'degrees')}")
    print(f"双曲余弦: {trigonometry('cosh', 1)}")
    print(f"反正切: {trigonometry('atan', 1, 'degrees')}")
    print()

def statistics_examples():
    """统计分析示例"""
    print("=== 📈 统计分析示例 ===")
    
    # 学生成绩数据
    scores = [85, 92, 78, 96, 88, 91, 84, 89, 93, 87]
    print(f"学生成绩统计分析:")
    print(statistics_analysis(scores))
    print()
    
    # 股票价格数据
    stock_prices = [150.25, 152.80, 148.90, 155.60, 153.45]
    print(f"股票价格统计分析:")
    print(statistics_analysis(stock_prices))
    print()

def unit_conversion_examples():
    """单位转换示例"""
    print("=== 🔄 单位转换示例 ===")
    
    # 长度转换
    print(f"身高转换: {unit_conversion(175, 'cm', 'ft', 'length')}")
    print(f"距离转换: {unit_conversion(5, 'km', 'mile', 'length')}")
    
    # 重量转换
    print(f"体重转换: {unit_conversion(70, 'kg', 'lb', 'weight')}")
    print(f"药物剂量: {unit_conversion(500, 'mg', 'g', 'weight')}")
    
    # 温度转换
    print(f"体温转换: {unit_conversion(37, 'celsius', 'fahrenheit', 'temperature')}")
    print(f"绝对零度: {unit_conversion(-273.15, 'celsius', 'kelvin', 'temperature')}")
    
    # 面积和体积
    print(f"房间面积: {unit_conversion(100, 'm2', 'ft2', 'area')}")
    print(f"油箱容量: {unit_conversion(50, 'l', 'gallon', 'volume')}")
    print()

def complex_expressions_examples():
    """复杂表达式示例"""
    print("=== 🧮 复杂表达式示例 ===")
    
    # 物理公式
    print(f"圆的面积 (r=5): {calculate('pi * pow(5, 2)')}")
    print(f"球的体积 (r=3): {calculate('4/3 * pi * pow(3, 3)')}")
    
    # 三角恒等式验证
    print(f"三角恒等式: {calculate('sin(pi/6)**2 + cos(pi/6)**2')}")
    print(f"欧拉公式验证: {calculate('exp(0) + 0')}")
    
    # 统计计算
    print(f"正态分布相关: {calculate('1/sqrt(2*pi) * exp(-0.5*pow(0,2))')}")
    
    # 复合函数
    print(f"复合函数: {calculate('log(exp(5)) + sqrt(pow(3,2) + pow(4,2))')}")
    
    # 阶乘和组合
    print(f"组合数C(10,3): {calculate('factorial(10)/(factorial(3)*factorial(7))')}")
    print()

def real_world_applications():
    """实际应用示例"""
    print("=== 🌍 实际应用示例 ===")
    
    # 金融计算
    print("💰 金融计算:")
    principal = 10000  # 本金
    rate = 0.05       # 年利率5%
    time = 10         # 10年
    compound_interest = calculate(f'{principal} * pow(1 + {rate}, {time})')
    print(f"复利计算 (本金{principal}, 年利率{rate*100}%, {time}年): {compound_interest}")
    
    # 工程计算
    print("\n🔧 工程计算:")
    print(f"正弦波幅值: {calculate('10 * sin(2*pi*1*0.25)')}")
    print(f"RC电路时间常数: {calculate('1000 * 0.000001')}")
    
    # 科学计算
    print("\n🔬 科学计算:")
    print(f"标准大气压转换: {unit_conversion(1, 'atm', 'pa', 'pressure') if 'atm' in ['atm'] else '101325 Pa'}")
    print(f"光速计算: {calculate('299792458')} m/s")
    
    # 数据分析
    print("\n📊 数据分析:")
    monthly_sales = [12000, 15000, 13500, 18000, 16500, 14000]
    print(f"月销售额分析:")
    print(statistics_analysis(monthly_sales))
    print()

def performance_monitoring_examples():
    """性能监控示例"""
    print("=== ⚙️ 性能监控示例 ===")
    
    # 重置统计
    print(f"重置性能统计: {reset_performance_stats()}")
    
    # 执行一些计算
    for i in range(5):
        add(i, i+1)
        calculate(f'sin({i}) + cos({i})')
    
    # 获取性能统计
    print("\n当前性能统计:")
    print(get_performance_stats())
    print()

def error_handling_examples():
    """错误处理示例"""
    print("=== ⚠️ 错误处理示例 ===")
    
    print(f"除零错误: {divide(10, 0)}")
    print(f"负数开方: {square_root(-4)}")
    print(f"负数阶乘: {factorial(-1)}")
    print(f"无效三角函数: {trigonometry('invalid', 30)}")
    print(f"语法错误表达式: {calculate('2 + + 3')}")
    print(f"未定义变量: {calculate('x + 5')}")
    print(f"无效单位转换: {unit_conversion(100, 'invalid', 'm', 'length')}")
    print()

def main():
    """主函数 - 运行所有示例"""
    print("🧮 MCP 高级计算器服务 v2.0 - 完整功能演示")
    print("=" * 60)
    print()
    
    basic_operations_examples()
    advanced_math_examples()
    statistics_examples()
    unit_conversion_examples()
    complex_expressions_examples()
    real_world_applications()
    performance_monitoring_examples()
    error_handling_examples()
    
    print("🎉 演示完成！MCP 高级计算器服务 v2.0 功能全面展示结束。")
    print("\n📚 更多信息请查看 README.md 文件")
    print("🔧 配置选项请查看 calculator_config.json 文件")
    print("📝 日志文件: calculator.log")

if __name__ == "__main__":
    import math  # 用于某些示例
    main()